package com.uls.found.service;

import java.util.List;

import com.uls.common.core.domain.entity.SysUser;
import com.uls.found.domain.EduClaimRecord;
import com.uls.found.vo.TaskCommentVo;

/**
 * 认领记录Service接口
 * 
 * @author ruoyi
 * @date 2024-10-29
 */
public interface IEduClaimRecordService 
{
    /**
     * 查询认领记录
     * 
     * @param claimId 认领记录主键
     * @return 认领记录
     */
    public EduClaimRecord selectEduClaimRecordByClaimId(Integer claimId);

    /**
     * 查询认领记录列表
     * 
     * @param eduClaimRecord 认领记录
     * @return 认领记录集合
     */
    public List<EduClaimRecord> selectEduClaimRecordList(EduClaimRecord eduClaimRecord);

    /**
     * 新增认领记录
     * 
     * @param eduClaimRecord 认领记录
     * @return 结果
     */
    public int insertEduClaimRecord(EduClaimRecord eduClaimRecord);

    /**
     * 修改认领记录
     * 
     * @param eduClaimRecord 认领记录
     * @return 结果
     */
    public int updateEduClaimRecord(EduClaimRecord eduClaimRecord);

    /**
     * 批量删除认领记录
     * 
     * @param claimIds 需要删除的认领记录主键集合
     * @return 结果
     */
    public int deleteEduClaimRecordByClaimIds(Integer[] claimIds);

    /**
     * 删除认领记录信息
     * 
     * @param claimId 认领记录主键
     * @return 结果
     */
    public int deleteEduClaimRecordByClaimId(Integer claimId);


    /**
     * 导入认领记录信息
     *
     * @param eduClaimRecordList
     * @return 结果
     */
    public String importUser(List<EduClaimRecord> eduClaimRecordList, Boolean isUpdateSupport);


    /**
     * 提交申请
     * @param claimId 根据claimId去查询（认领表中的id）
     * @param userId
     */
    int submit(Integer claimId, Long userId);


    /**
     *
     * @param userId 未完成的任务所对应的登入用户
     * @return
     */
    public List<EduClaimRecord> noFinishTask(long userId,String processDefinitionKey);


    /**
     *
     * @param userId 未完成的任务所对应的登入用户
     *        eduClaimRecord  根据条件查询
     * @return
     */
    public List<EduClaimRecord> noFinishTask(long userId,String processDefinitionKey,EduClaimRecord eduClaimRecord);



    /**
     *
     * @param claimId 认领的id，完成任务
     * @return
     */
    public void competeTast(Long flowid, Integer agree, Long userId, String comment, Integer claimId);



    /**
     * 查询完成的任务
     * @param userId 根据用户id获取完成的任务
     * @return
     */
    public List<EduClaimRecord> finishTask(Long userId,String processDefinitionKey);


    /**
     * 根据流程id获取历史审批数据（task，comment）
     * @param flow 流程id
     * @return
     */
    List<TaskCommentVo> getTaskCommentList(Long flow);

}
